package com.example.wechat.csdnandroid.activity;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.PermissionChecker;

import android.Manifest;
import android.os.Build;
import android.os.Bundle;
import android.widget.Toast;

import com.example.wechat.csdnandroid.R;

public class PermissionActvity extends AppCompatActivity {

    private static final int REQUEST_SD_PERMISSION = 10001;
    private String sdPermission = Manifest.permission.WRITE_EXTERNAL_STORAGE;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_permission_actvity);
        if (Build.VERSION.SDK_INT >= 23) {
            //参1 检测当前应用是否有特定权限
            //参2 需要检测权限 维系那权限 才需要动态申请
            // 危险权限 跟用户隐私相关的权限 sd卡 短信 通话记录 打带你话 位置 摄像头 录音机
            if (ActivityCompat.checkSelfPermission(this, sdPermission) == PermissionChecker.PERMISSION_DENIED) {
                ActivityCompat.requestPermissions(this, new String[]{sdPermission}, REQUEST_SD_PERMISSION);
                return;
            } else {
                //初始化使用目录
                initData();
            }

        } else {
            //初始化使用目录
            initData();
        }
    }
    /***
     * 申请权限的结果返回
     * @param requestCode
     * @param permissions 请求所有权限
     * @param grantResults 用户操作后的权限结果 GRANTED授权了 DENTED未授权
     */
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        //用户授权了
        switch (requestCode){
            case REQUEST_SD_PERMISSION:
                if (grantResults[0] == PermissionChecker.PERMISSION_GRANTED) {
                    initData();
                } else {
                    Toast.makeText(this, "请授权sd卡权限后 再操", Toast.LENGTH_SHORT).show();
                    finish();
                }
                break;
        }


    }

    private void initData() {
        Toast.makeText(this, "sk卡权限请求成功", Toast.LENGTH_SHORT).show();

    }
}
